//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(new Number(Number.MIN_VALUE) << -0);
write(new Number(Number.MIN_VALUE) << 0);
write(new Number(Number.MIN_VALUE) << 0.0);
write(new Number(Number.MIN_VALUE) << -0.0);
write(new Number(Number.MIN_VALUE) << +0.0);
write(new Number(Number.MIN_VALUE) << 1);
write(new Number(Number.MIN_VALUE) << 10);
write(new Number(Number.MIN_VALUE) << 10.0);
write(new Number(Number.MIN_VALUE) << 10.1);
write(new Number(Number.MIN_VALUE) << -1);
write(new Number(Number.MIN_VALUE) << -10);
write(new Number(Number.MIN_VALUE) << -10.0);
write(new Number(Number.MIN_VALUE) << -10.1);
write(new Number(Number.MIN_VALUE) << Number.MAX_VALUE);
write(new Number(Number.MIN_VALUE) << Number.MIN_VALUE);
write(new Number(Number.MIN_VALUE) << Number.NaN);
write(new Number(Number.MIN_VALUE) << Number.POSITIVE_INFINITY);
write(new Number(Number.MIN_VALUE) << Number.NEGATIVE_INFINITY);
write(new Number(Number.MIN_VALUE) << new Number(NaN));
write(new Number(Number.MIN_VALUE) << new Number(+0));
write(new Number(Number.MIN_VALUE) << new Number(-0));
write(new Number(Number.MIN_VALUE) << new Number(0));
write(new Number(Number.MIN_VALUE) << new Number(0.0));
write(new Number(Number.MIN_VALUE) << new Number(-0.0));
write(new Number(Number.MIN_VALUE) << new Number(+0.0));
write(new Number(Number.MIN_VALUE) << new Number(1));
write(new Number(Number.MIN_VALUE) << new Number(10));
write(new Number(Number.MIN_VALUE) << new Number(10.0));
write(new Number(Number.MIN_VALUE) << new Number(10.1));
write(new Number(Number.MIN_VALUE) << new Number(-1));
write(new Number(Number.MIN_VALUE) << new Number(-10));
write(new Number(Number.MIN_VALUE) << new Number(-10.0));
write(new Number(Number.MIN_VALUE) << new Number(-10.1));
write(new Number(Number.MIN_VALUE) << new Number(Number.MAX_VALUE));
write(new Number(Number.MIN_VALUE) << new Number(Number.MIN_VALUE));
write(new Number(Number.MIN_VALUE) << new Number(Number.NaN));
write(new Number(Number.MIN_VALUE) << new Number(Number.POSITIVE_INFINITY));
write(new Number(Number.MIN_VALUE) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(Number.MIN_VALUE) << '');
write(new Number(Number.MIN_VALUE) << 0xa);
write(new Number(Number.MIN_VALUE) << 04);
write(new Number(Number.MIN_VALUE) << 'hello');
write(new Number(Number.MIN_VALUE) << 'hel' + 'lo');
write(new Number(Number.MIN_VALUE) << String(''));
write(new Number(Number.MIN_VALUE) << String('hello'));
write(new Number(Number.MIN_VALUE) << String('h' + 'ello'));
write(new Number(Number.MIN_VALUE) << new String(''));
write(new Number(Number.MIN_VALUE) << new String('hello'));
write(new Number(Number.MIN_VALUE) << new String('he' + 'llo'));
write(new Number(Number.MIN_VALUE) << new Object());
write(new Number(Number.MIN_VALUE) << new Object());
write(new Number(Number.MIN_VALUE) << [1, 2, 3]);
write(new Number(Number.MIN_VALUE) << [1 ,2 , 3]);
write(new Number(Number.MIN_VALUE) << new Array(3));
write(new Number(Number.MIN_VALUE) << Array(3));
write(new Number(Number.MIN_VALUE) << new Array(1 ,2 ,3));
write(new Number(Number.MIN_VALUE) << Array(1));
write(new Number(Number.MIN_VALUE) << foo);
write(new Number(Number.NaN) << undefined);
write(new Number(Number.NaN) << null);
write(new Number(Number.NaN) << true);
write(new Number(Number.NaN) << false);
write(new Number(Number.NaN) << Boolean(true));
write(new Number(Number.NaN) << Boolean(false));
write(new Number(Number.NaN) << new Boolean(true));
write(new Number(Number.NaN) << new Boolean(false));
write(new Number(Number.NaN) << NaN);
write(new Number(Number.NaN) << +0);
write(new Number(Number.NaN) << -0);
write(new Number(Number.NaN) << 0);
write(new Number(Number.NaN) << 0.0);
write(new Number(Number.NaN) << -0.0);
write(new Number(Number.NaN) << +0.0);
write(new Number(Number.NaN) << 1);
write(new Number(Number.NaN) << 10);
write(new Number(Number.NaN) << 10.0);
write(new Number(Number.NaN) << 10.1);
write(new Number(Number.NaN) << -1);
write(new Number(Number.NaN) << -10);
write(new Number(Number.NaN) << -10.0);
write(new Number(Number.NaN) << -10.1);
write(new Number(Number.NaN) << Number.MAX_VALUE);
write(new Number(Number.NaN) << Number.MIN_VALUE);
write(new Number(Number.NaN) << Number.NaN);
write(new Number(Number.NaN) << Number.POSITIVE_INFINITY);
write(new Number(Number.NaN) << Number.NEGATIVE_INFINITY);
write(new Number(Number.NaN) << new Number(NaN));
write(new Number(Number.NaN) << new Number(+0));
write(new Number(Number.NaN) << new Number(-0));
write(new Number(Number.NaN) << new Number(0));
write(new Number(Number.NaN) << new Number(0.0));
write(new Number(Number.NaN) << new Number(-0.0));
write(new Number(Number.NaN) << new Number(+0.0));
write(new Number(Number.NaN) << new Number(1));
write(new Number(Number.NaN) << new Number(10));
write(new Number(Number.NaN) << new Number(10.0));
write(new Number(Number.NaN) << new Number(10.1));
write(new Number(Number.NaN) << new Number(-1));
write(new Number(Number.NaN) << new Number(-10));
write(new Number(Number.NaN) << new Number(-10.0));
write(new Number(Number.NaN) << new Number(-10.1));
write(new Number(Number.NaN) << new Number(Number.MAX_VALUE));
write(new Number(Number.NaN) << new Number(Number.MIN_VALUE));
write(new Number(Number.NaN) << new Number(Number.NaN));
write(new Number(Number.NaN) << new Number(Number.POSITIVE_INFINITY));
write(new Number(Number.NaN) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(Number.NaN) << '');
write(new Number(Number.NaN) << 0xa);
write(new Number(Number.NaN) << 04);
write(new Number(Number.NaN) << 'hello');
write(new Number(Number.NaN) << 'hel' + 'lo');
write(new Number(Number.NaN) << String(''));
write(new Number(Number.NaN) << String('hello'));
write(new Number(Number.NaN) << String('h' + 'ello'));
write(new Number(Number.NaN) << new String(''));
write(new Number(Number.NaN) << new String('hello'));
write(new Number(Number.NaN) << new String('he' + 'llo'));
write(new Number(Number.NaN) << new Object());
write(new Number(Number.NaN) << new Object());
write(new Number(Number.NaN) << [1, 2, 3]);
write(new Number(Number.NaN) << [1 ,2 , 3]);
write(new Number(Number.NaN) << new Array(3));
write(new Number(Number.NaN) << Array(3));
write(new Number(Number.NaN) << new Array(1 ,2 ,3));
write(new Number(Number.NaN) << Array(1));
write(new Number(Number.NaN) << foo);
write(new Number(Number.POSITIVE_INFINITY) << undefined);
write(new Number(Number.POSITIVE_INFINITY) << null);
write(new Number(Number.POSITIVE_INFINITY) << true);
write(new Number(Number.POSITIVE_INFINITY) << false);
write(new Number(Number.POSITIVE_INFINITY) << Boolean(true));
write(new Number(Number.POSITIVE_INFINITY) << Boolean(false));
write(new Number(Number.POSITIVE_INFINITY) << new Boolean(true));
write(new Number(Number.POSITIVE_INFINITY) << new Boolean(false));
write(new Number(Number.POSITIVE_INFINITY) << NaN);
write(new Number(Number.POSITIVE_INFINITY) << +0);
write(new Number(Number.POSITIVE_INFINITY) << -0);
write(new Number(Number.POSITIVE_INFINITY) << 0);
write(new Number(Number.POSITIVE_INFINITY) << 0.0);
write(new Number(Number.POSITIVE_INFINITY) << -0.0);
write(new Number(Number.POSITIVE_INFINITY) << +0.0);
write(new Number(Number.POSITIVE_INFINITY) << 1);
write(new Number(Number.POSITIVE_INFINITY) << 10);
write(new Number(Number.POSITIVE_INFINITY) << 10.0);
write(new Number(Number.POSITIVE_INFINITY) << 10.1);
write(new Number(Number.POSITIVE_INFINITY) << -1);
write(new Number(Number.POSITIVE_INFINITY) << -10);
write(new Number(Number.POSITIVE_INFINITY) << -10.0);
write(new Number(Number.POSITIVE_INFINITY) << -10.1);
write(new Number(Number.POSITIVE_INFINITY) << Number.MAX_VALUE);
write(new Number(Number.POSITIVE_INFINITY) << Number.MIN_VALUE);
write(new Number(Number.POSITIVE_INFINITY) << Number.NaN);
write(new Number(Number.POSITIVE_INFINITY) << Number.POSITIVE_INFINITY);
write(new Number(Number.POSITIVE_INFINITY) << Number.NEGATIVE_INFINITY);
write(new Number(Number.POSITIVE_INFINITY) << new Number(NaN));
write(new Number(Number.POSITIVE_INFINITY) << new Number(+0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(-0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(0.0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(-0.0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(+0.0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(1));
write(new Number(Number.POSITIVE_INFINITY) << new Number(10));
write(new Number(Number.POSITIVE_INFINITY) << new Number(10.0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(10.1));
write(new Number(Number.POSITIVE_INFINITY) << new Number(-1));
write(new Number(Number.POSITIVE_INFINITY) << new Number(-10));
write(new Number(Number.POSITIVE_INFINITY) << new Number(-10.0));
write(new Number(Number.POSITIVE_INFINITY) << new Number(-10.1));
write(new Number(Number.POSITIVE_INFINITY) << new Number(Number.MAX_VALUE));
write(new Number(Number.POSITIVE_INFINITY) << new Number(Number.MIN_VALUE));
write(new Number(Number.POSITIVE_INFINITY) << new Number(Number.NaN));
write(new Number(Number.POSITIVE_INFINITY) << new Number(Number.POSITIVE_INFINITY));
write(new Number(Number.POSITIVE_INFINITY) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(Number.POSITIVE_INFINITY) << '');
write(new Number(Number.POSITIVE_INFINITY) << 0xa);
write(new Number(Number.POSITIVE_INFINITY) << 04);
write(new Number(Number.POSITIVE_INFINITY) << 'hello');
write(new Number(Number.POSITIVE_INFINITY) << 'hel' + 'lo');
write(new Number(Number.POSITIVE_INFINITY) << String(''));
write(new Number(Number.POSITIVE_INFINITY) << String('hello'));
write(new Number(Number.POSITIVE_INFINITY) << String('h' + 'ello'));
write(new Number(Number.POSITIVE_INFINITY) << new String(''));
write(new Number(Number.POSITIVE_INFINITY) << new String('hello'));
write(new Number(Number.POSITIVE_INFINITY) << new String('he' + 'llo'));
write(new Number(Number.POSITIVE_INFINITY) << new Object());
write(new Number(Number.POSITIVE_INFINITY) << new Object());
write(new Number(Number.POSITIVE_INFINITY) << [1, 2, 3]);
write(new Number(Number.POSITIVE_INFINITY) << [1 ,2 , 3]);
write(new Number(Number.POSITIVE_INFINITY) << new Array(3));
write(new Number(Number.POSITIVE_INFINITY) << Array(3));
write(new Number(Number.POSITIVE_INFINITY) << new Array(1 ,2 ,3));
write(new Number(Number.POSITIVE_INFINITY) << Array(1));
write(new Number(Number.POSITIVE_INFINITY) << foo);
write(new Number(Number.NEGATIVE_INFINITY) << undefined);
write(new Number(Number.NEGATIVE_INFINITY) << null);
write(new Number(Number.NEGATIVE_INFINITY) << true);
write(new Number(Number.NEGATIVE_INFINITY) << false);
write(new Number(Number.NEGATIVE_INFINITY) << Boolean(true));
write(new Number(Number.NEGATIVE_INFINITY) << Boolean(false));
write(new Number(Number.NEGATIVE_INFINITY) << new Boolean(true));
write(new Number(Number.NEGATIVE_INFINITY) << new Boolean(false));
write(new Number(Number.NEGATIVE_INFINITY) << NaN);
write(new Number(Number.NEGATIVE_INFINITY) << +0);
write(new Number(Number.NEGATIVE_INFINITY) << -0);
write(new Number(Number.NEGATIVE_INFINITY) << 0);
write(new Number(Number.NEGATIVE_INFINITY) << 0.0);
write(new Number(Number.NEGATIVE_INFINITY) << -0.0);
write(new Number(Number.NEGATIVE_INFINITY) << +0.0);
write(new Number(Number.NEGATIVE_INFINITY) << 1);
write(new Number(Number.NEGATIVE_INFINITY) << 10);
write(new Number(Number.NEGATIVE_INFINITY) << 10.0);
write(new Number(Number.NEGATIVE_INFINITY) << 10.1);
write(new Number(Number.NEGATIVE_INFINITY) << -1);
write(new Number(Number.NEGATIVE_INFINITY) << -10);
write(new Number(Number.NEGATIVE_INFINITY) << -10.0);
write(new Number(Number.NEGATIVE_INFINITY) << -10.1);
write(new Number(Number.NEGATIVE_INFINITY) << Number.MAX_VALUE);
write(new Number(Number.NEGATIVE_INFINITY) << Number.MIN_VALUE);
write(new Number(Number.NEGATIVE_INFINITY) << Number.NaN);
write(new Number(Number.NEGATIVE_INFINITY) << Number.POSITIVE_INFINITY);
write(new Number(Number.NEGATIVE_INFINITY) << Number.NEGATIVE_INFINITY);
write(new Number(Number.NEGATIVE_INFINITY) << new Number(NaN));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(+0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(-0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(0.0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(-0.0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(+0.0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(1));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(10));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(10.0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(10.1));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(-1));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(-10));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(-10.0));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(-10.1));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(Number.MAX_VALUE));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(Number.MIN_VALUE));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(Number.NaN));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(Number.POSITIVE_INFINITY));
write(new Number(Number.NEGATIVE_INFINITY) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(Number.NEGATIVE_INFINITY) << '');
write(new Number(Number.NEGATIVE_INFINITY) << 0xa);
write(new Number(Number.NEGATIVE_INFINITY) << 04);
write(new Number(Number.NEGATIVE_INFINITY) << 'hello');
write(new Number(Number.NEGATIVE_INFINITY) << 'hel' + 'lo');
write(new Number(Number.NEGATIVE_INFINITY) << String(''));
write(new Number(Number.NEGATIVE_INFINITY) << String('hello'));
write(new Number(Number.NEGATIVE_INFINITY) << String('h' + 'ello'));
write(new Number(Number.NEGATIVE_INFINITY) << new String(''));
write(new Number(Number.NEGATIVE_INFINITY) << new String('hello'));
write(new Number(Number.NEGATIVE_INFINITY) << new String('he' + 'llo'));
write(new Number(Number.NEGATIVE_INFINITY) << new Object());
write(new Number(Number.NEGATIVE_INFINITY) << new Object());
write(new Number(Number.NEGATIVE_INFINITY) << [1, 2, 3]);
write(new Number(Number.NEGATIVE_INFINITY) << [1 ,2 , 3]);
write(new Number(Number.NEGATIVE_INFINITY) << new Array(3));
write(new Number(Number.NEGATIVE_INFINITY) << Array(3));
write(new Number(Number.NEGATIVE_INFINITY) << new Array(1 ,2 ,3));
write(new Number(Number.NEGATIVE_INFINITY) << Array(1));
write(new Number(Number.NEGATIVE_INFINITY) << foo);
write('' << undefined);
write('' << null);
write('' << true);
write('' << false);
write('' << Boolean(true));
write('' << Boolean(false));
write('' << new Boolean(true));
write('' << new Boolean(false));
write('' << NaN);
write('' << +0);
write('' << -0);
write('' << 0);
write('' << 0.0);
write('' << -0.0);
write('' << +0.0);
write('' << 1);
write('' << 10);
write('' << 10.0);
write('' << 10.1);
write('' << -1);
write('' << -10);
write('' << -10.0);
write('' << -10.1);
write('' << Number.MAX_VALUE);
write('' << Number.MIN_VALUE);
write('' << Number.NaN);
write('' << Number.POSITIVE_INFINITY);
write('' << Number.NEGATIVE_INFINITY);
write('' << new Number(NaN));
write('' << new Number(+0));
write('' << new Number(-0));
write('' << new Number(0));
write('' << new Number(0.0));
write('' << new Number(-0.0));
write('' << new Number(+0.0));
write('' << new Number(1));
write('' << new Number(10));
write('' << new Number(10.0));
write('' << new Number(10.1));
write('' << new Number(-1));
write('' << new Number(-10));
write('' << new Number(-10.0));
write('' << new Number(-10.1));
write('' << new Number(Number.MAX_VALUE));
write('' << new Number(Number.MIN_VALUE));
write('' << new Number(Number.NaN));
write('' << new Number(Number.POSITIVE_INFINITY));
write('' << new Number(Number.NEGATIVE_INFINITY));
write('' << '');
write('' << 0xa);
write('' << 04);
write('' << 'hello');
write('' << 'hel' + 'lo');
write('' << String(''));
write('' << String('hello'));
write('' << String('h' + 'ello'));
write('' << new String(''));
write('' << new String('hello'));
write('' << new String('he' + 'llo'));
write('' << new Object());
write('' << new Object());
write('' << [1, 2, 3]);
write('' << [1 ,2 , 3]);
write('' << new Array(3));
write('' << Array(3));
write('' << new Array(1 ,2 ,3));
write('' << Array(1));
write('' << foo);
write(0xa << undefined);
write(0xa << null);
write(0xa << true);
write(0xa << false);
write(0xa << Boolean(true));
write(0xa << Boolean(false));
write(0xa << new Boolean(true));
write(0xa << new Boolean(false));
write(0xa << NaN);
write(0xa << +0);
write(0xa << -0);
write(0xa << 0);
write(0xa << 0.0);
write(0xa << -0.0);
write(0xa << +0.0);
write(0xa << 1);
write(0xa << 10);
write(0xa << 10.0);
write(0xa << 10.1);
write(0xa << -1);
write(0xa << -10);
write(0xa << -10.0);
write(0xa << -10.1);
write(0xa << Number.MAX_VALUE);
write(0xa << Number.MIN_VALUE);
write(0xa << Number.NaN);
write(0xa << Number.POSITIVE_INFINITY);
write(0xa << Number.NEGATIVE_INFINITY);
write(0xa << new Number(NaN));
write(0xa << new Number(+0));
write(0xa << new Number(-0));
write(0xa << new Number(0));
write(0xa << new Number(0.0));
write(0xa << new Number(-0.0));
write(0xa << new Number(+0.0));
write(0xa << new Number(1));
write(0xa << new Number(10));
write(0xa << new Number(10.0));
write(0xa << new Number(10.1));
write(0xa << new Number(-1));
write(0xa << new Number(-10));
write(0xa << new Number(-10.0));
write(0xa << new Number(-10.1));
write(0xa << new Number(Number.MAX_VALUE));
write(0xa << new Number(Number.MIN_VALUE));
write(0xa << new Number(Number.NaN));
write(0xa << new Number(Number.POSITIVE_INFINITY));
write(0xa << new Number(Number.NEGATIVE_INFINITY));
write(0xa << '');
write(0xa << 0xa);
write(0xa << 04);
write(0xa << 'hello');
write(0xa << 'hel' + 'lo');
write(0xa << String(''));
write(0xa << String('hello'));
write(0xa << String('h' + 'ello'));
write(0xa << new String(''));
write(0xa << new String('hello'));
write(0xa << new String('he' + 'llo'));
write(0xa << new Object());
write(0xa << new Object());
write(0xa << [1, 2, 3]);
write(0xa << [1 ,2 , 3]);
write(0xa << new Array(3));
write(0xa << Array(3));
write(0xa << new Array(1 ,2 ,3));
write(0xa << Array(1));
write(0xa << foo);
write(04 << undefined);
write(04 << null);
write(04 << true);
write(04 << false);
write(04 << Boolean(true));
write(04 << Boolean(false));
write(04 << new Boolean(true));
write(04 << new Boolean(false));
write(04 << NaN);
write(04 << +0);
write(04 << -0);
write(04 << 0);
write(04 << 0.0);
write(04 << -0.0);
write(04 << +0.0);
write(04 << 1);
write(04 << 10);
write(04 << 10.0);
write(04 << 10.1);
write(04 << -1);
write(04 << -10);
write(04 << -10.0);
write(04 << -10.1);
write(04 << Number.MAX_VALUE);
write(04 << Number.MIN_VALUE);
write(04 << Number.NaN);
write(04 << Number.POSITIVE_INFINITY);
write(04 << Number.NEGATIVE_INFINITY);
write(04 << new Number(NaN));
write(04 << new Number(+0));
write(04 << new Number(-0));
write(04 << new Number(0));
write(04 << new Number(0.0));
write(04 << new Number(-0.0));
write(04 << new Number(+0.0));
write(04 << new Number(1));
write(04 << new Number(10));
write(04 << new Number(10.0));
write(04 << new Number(10.1));
write(04 << new Number(-1));
write(04 << new Number(-10));
write(04 << new Number(-10.0));
write(04 << new Number(-10.1));
write(04 << new Number(Number.MAX_VALUE));
write(04 << new Number(Number.MIN_VALUE));
write(04 << new Number(Number.NaN));
write(04 << new Number(Number.POSITIVE_INFINITY));
write(04 << new Number(Number.NEGATIVE_INFINITY));
write(04 << '');
write(04 << 0xa);
write(04 << 04);
write(04 << 'hello');
write(04 << 'hel' + 'lo');
write(04 << String(''));
write(04 << String('hello'));
write(04 << String('h' + 'ello'));
write(04 << new String(''));
write(04 << new String('hello'));
write(04 << new String('he' + 'llo'));
write(04 << new Object());
write(04 << new Object());
write(04 << [1, 2, 3]);
write(04 << [1 ,2 , 3]);
write(04 << new Array(3));
write(04 << Array(3));
write(04 << new Array(1 ,2 ,3));
write(04 << Array(1));
write(04 << foo);
write('hello' << undefined);
write('hello' << null);
write('hello' << true);
write('hello' << false);
write('hello' << Boolean(true));
write('hello' << Boolean(false));
write('hello' << new Boolean(true));
write('hello' << new Boolean(false));
write('hello' << NaN);
write('hello' << +0);
write('hello' << -0);
write('hello' << 0);
write('hello' << 0.0);
write('hello' << -0.0);
write('hello' << +0.0);
write('hello' << 1);
write('hello' << 10);
write('hello' << 10.0);
write('hello' << 10.1);
write('hello' << -1);
write('hello' << -10);
write('hello' << -10.0);
write('hello' << -10.1);
write('hello' << Number.MAX_VALUE);
write('hello' << Number.MIN_VALUE);
write('hello' << Number.NaN);
write('hello' << Number.POSITIVE_INFINITY);
write('hello' << Number.NEGATIVE_INFINITY);
write('hello' << new Number(NaN));
write('hello' << new Number(+0));
write('hello' << new Number(-0));
write('hello' << new Number(0));
write('hello' << new Number(0.0));
write('hello' << new Number(-0.0));
write('hello' << new Number(+0.0));
write('hello' << new Number(1));
write('hello' << new Number(10));
write('hello' << new Number(10.0));
write('hello' << new Number(10.1));
write('hello' << new Number(-1));
write('hello' << new Number(-10));
write('hello' << new Number(-10.0));
write('hello' << new Number(-10.1));
write('hello' << new Number(Number.MAX_VALUE));
write('hello' << new Number(Number.MIN_VALUE));
write('hello' << new Number(Number.NaN));
write('hello' << new Number(Number.POSITIVE_INFINITY));
write('hello' << new Number(Number.NEGATIVE_INFINITY));
write('hello' << '');
write('hello' << 0xa);
write('hello' << 04);
write('hello' << 'hello');
write('hello' << 'hel' + 'lo');
write('hello' << String(''));
write('hello' << String('hello'));
write('hello' << String('h' + 'ello'));
write('hello' << new String(''));
write('hello' << new String('hello'));
write('hello' << new String('he' + 'llo'));
write('hello' << new Object());
write('hello' << new Object());
write('hello' << [1, 2, 3]);
write('hello' << [1 ,2 , 3]);
write('hello' << new Array(3));
write('hello' << Array(3));
write('hello' << new Array(1 ,2 ,3));
write('hello' << Array(1));
write('hello' << foo);
write('hel' + 'lo' << undefined);
write('hel' + 'lo' << null);
write('hel' + 'lo' << true);
write('hel' + 'lo' << false);
write('hel' + 'lo' << Boolean(true));
write('hel' + 'lo' << Boolean(false));
write('hel' + 'lo' << new Boolean(true));
write('hel' + 'lo' << new Boolean(false));
write('hel' + 'lo' << NaN);
write('hel' + 'lo' << +0);
write('hel' + 'lo' << -0);
write('hel' + 'lo' << 0);
write('hel' + 'lo' << 0.0);
write('hel' + 'lo' << -0.0);
write('hel' + 'lo' << +0.0);
write('hel' + 'lo' << 1);
write('hel' + 'lo' << 10);
write('hel' + 'lo' << 10.0);
write('hel' + 'lo' << 10.1);
write('hel' + 'lo' << -1);
write('hel' + 'lo' << -10);
write('hel' + 'lo' << -10.0);
write('hel' + 'lo' << -10.1);
write('hel' + 'lo' << Number.MAX_VALUE);
write('hel' + 'lo' << Number.MIN_VALUE);
write('hel' + 'lo' << Number.NaN);
write('hel' + 'lo' << Number.POSITIVE_INFINITY);
write('hel' + 'lo' << Number.NEGATIVE_INFINITY);
write('hel' + 'lo' << new Number(NaN));
write('hel' + 'lo' << new Number(+0));
write('hel' + 'lo' << new Number(-0));
write('hel' + 'lo' << new Number(0));
write('hel' + 'lo' << new Number(0.0));
write('hel' + 'lo' << new Number(-0.0));
write('hel' + 'lo' << new Number(+0.0));
write('hel' + 'lo' << new Number(1));
write('hel' + 'lo' << new Number(10));
write('hel' + 'lo' << new Number(10.0));
write('hel' + 'lo' << new Number(10.1));
write('hel' + 'lo' << new Number(-1));
write('hel' + 'lo' << new Number(-10));
write('hel' + 'lo' << new Number(-10.0));
write('hel' + 'lo' << new Number(-10.1));
write('hel' + 'lo' << new Number(Number.MAX_VALUE));
write('hel' + 'lo' << new Number(Number.MIN_VALUE));
write('hel' + 'lo' << new Number(Number.NaN));
write('hel' + 'lo' << new Number(Number.POSITIVE_INFINITY));
write('hel' + 'lo' << new Number(Number.NEGATIVE_INFINITY));
write('hel' + 'lo' << '');
write('hel' + 'lo' << 0xa);
write('hel' + 'lo' << 04);
write('hel' + 'lo' << 'hello');
write('hel' + 'lo' << 'hel' + 'lo');
write('hel' + 'lo' << String(''));
write('hel' + 'lo' << String('hello'));
write('hel' + 'lo' << String('h' + 'ello'));
write('hel' + 'lo' << new String(''));
write('hel' + 'lo' << new String('hello'));
write('hel' + 'lo' << new String('he' + 'llo'));
write('hel' + 'lo' << new Object());
write('hel' + 'lo' << new Object());
write('hel' + 'lo' << [1, 2, 3]);
write('hel' + 'lo' << [1 ,2 , 3]);
write('hel' + 'lo' << new Array(3));
write('hel' + 'lo' << Array(3));
write('hel' + 'lo' << new Array(1 ,2 ,3));
write('hel' + 'lo' << Array(1));
write('hel' + 'lo' << foo);
write(String('') << undefined);
write(String('') << null);
write(String('') << true);
write(String('') << false);
write(String('') << Boolean(true));
write(String('') << Boolean(false));
write(String('') << new Boolean(true));
write(String('') << new Boolean(false));
write(String('') << NaN);
write(String('') << +0);
write(String('') << -0);
write(String('') << 0);
write(String('') << 0.0);
write(String('') << -0.0);
write(String('') << +0.0);
write(String('') << 1);
write(String('') << 10);
write(String('') << 10.0);
write(String('') << 10.1);
write(String('') << -1);
write(String('') << -10);
write(String('') << -10.0);
write(String('') << -10.1);
write(String('') << Number.MAX_VALUE);
write(String('') << Number.MIN_VALUE);
write(String('') << Number.NaN);
write(String('') << Number.POSITIVE_INFINITY);
write(String('') << Number.NEGATIVE_INFINITY);
write(String('') << new Number(NaN));
write(String('') << new Number(+0));
write(String('') << new Number(-0));
write(String('') << new Number(0));
write(String('') << new Number(0.0));
write(String('') << new Number(-0.0));
write(String('') << new Number(+0.0));
write(String('') << new Number(1));
write(String('') << new Number(10));
write(String('') << new Number(10.0));
write(String('') << new Number(10.1));
write(String('') << new Number(-1));
write(String('') << new Number(-10));
write(String('') << new Number(-10.0));
write(String('') << new Number(-10.1));
write(String('') << new Number(Number.MAX_VALUE));
write(String('') << new Number(Number.MIN_VALUE));
write(String('') << new Number(Number.NaN));
write(String('') << new Number(Number.POSITIVE_INFINITY));
write(String('') << new Number(Number.NEGATIVE_INFINITY));
write(String('') << '');
write(String('') << 0xa);
write(String('') << 04);
write(String('') << 'hello');
write(String('') << 'hel' + 'lo');
write(String('') << String(''));
write(String('') << String('hello'));
write(String('') << String('h' + 'ello'));
write(String('') << new String(''));
write(String('') << new String('hello'));
write(String('') << new String('he' + 'llo'));
write(String('') << new Object());
write(String('') << new Object());
write(String('') << [1, 2, 3]);
write(String('') << [1 ,2 , 3]);
write(String('') << new Array(3));
write(String('') << Array(3));
write(String('') << new Array(1 ,2 ,3));
write(String('') << Array(1));
write(String('') << foo);
write(String('hello') << undefined);
write(String('hello') << null);
write(String('hello') << true);
write(String('hello') << false);
write(String('hello') << Boolean(true));
write(String('hello') << Boolean(false));
write(String('hello') << new Boolean(true));
write(String('hello') << new Boolean(false));
write(String('hello') << NaN);
write(String('hello') << +0);
write(String('hello') << -0);
write(String('hello') << 0);
write(String('hello') << 0.0);
write(String('hello') << -0.0);
write(String('hello') << +0.0);
write(String('hello') << 1);
write(String('hello') << 10);
write(String('hello') << 10.0);
write(String('hello') << 10.1);
write(String('hello') << -1);
write(String('hello') << -10);
write(String('hello') << -10.0);
write(String('hello') << -10.1);
write(String('hello') << Number.MAX_VALUE);
write(String('hello') << Number.MIN_VALUE);
write(String('hello') << Number.NaN);
write(String('hello') << Number.POSITIVE_INFINITY);
write(String('hello') << Number.NEGATIVE_INFINITY);
write(String('hello') << new Number(NaN));
write(String('hello') << new Number(+0));
write(String('hello') << new Number(-0));
write(String('hello') << new Number(0));
write(String('hello') << new Number(0.0));
write(String('hello') << new Number(-0.0));
write(String('hello') << new Number(+0.0));
write(String('hello') << new Number(1));
write(String('hello') << new Number(10));
write(String('hello') << new Number(10.0));
write(String('hello') << new Number(10.1));
write(String('hello') << new Number(-1));
write(String('hello') << new Number(-10));
write(String('hello') << new Number(-10.0));
write(String('hello') << new Number(-10.1));
write(String('hello') << new Number(Number.MAX_VALUE));
write(String('hello') << new Number(Number.MIN_VALUE));
write(String('hello') << new Number(Number.NaN));
write(String('hello') << new Number(Number.POSITIVE_INFINITY));
write(String('hello') << new Number(Number.NEGATIVE_INFINITY));
write(String('hello') << '');
write(String('hello') << 0xa);
write(String('hello') << 04);
write(String('hello') << 'hello');
write(String('hello') << 'hel' + 'lo');
write(String('hello') << String(''));
write(String('hello') << String('hello'));
write(String('hello') << String('h' + 'ello'));
write(String('hello') << new String(''));
write(String('hello') << new String('hello'));
write(String('hello') << new String('he' + 'llo'));
write(String('hello') << new Object());
write(String('hello') << new Object());
write(String('hello') << [1, 2, 3]);
write(String('hello') << [1 ,2 , 3]);
write(String('hello') << new Array(3));
write(String('hello') << Array(3));
write(String('hello') << new Array(1 ,2 ,3));
write(String('hello') << Array(1));
write(String('hello') << foo);
write(String('h' + 'ello') << undefined);
write(String('h' + 'ello') << null);
write(String('h' + 'ello') << true);
write(String('h' + 'ello') << false);
write(String('h' + 'ello') << Boolean(true));
write(String('h' + 'ello') << Boolean(false));
write(String('h' + 'ello') << new Boolean(true));
write(String('h' + 'ello') << new Boolean(false));
write(String('h' + 'ello') << NaN);
write(String('h' + 'ello') << +0);
write(String('h' + 'ello') << -0);
write(String('h' + 'ello') << 0);
write(String('h' + 'ello') << 0.0);
write(String('h' + 'ello') << -0.0);
write(String('h' + 'ello') << +0.0);
write(String('h' + 'ello') << 1);
write(String('h' + 'ello') << 10);
write(String('h' + 'ello') << 10.0);
write(String('h' + 'ello') << 10.1);
write(String('h' + 'ello') << -1);
write(String('h' + 'ello') << -10);
write(String('h' + 'ello') << -10.0);
write(String('h' + 'ello') << -10.1);
write(String('h' + 'ello') << Number.MAX_VALUE);
write(String('h' + 'ello') << Number.MIN_VALUE);
write(String('h' + 'ello') << Number.NaN);
write(String('h' + 'ello') << Number.POSITIVE_INFINITY);
write(String('h' + 'ello') << Number.NEGATIVE_INFINITY);
write(String('h' + 'ello') << new Number(NaN));
write(String('h' + 'ello') << new Number(+0));
write(String('h' + 'ello') << new Number(-0));
write(String('h' + 'ello') << new Number(0));
write(String('h' + 'ello') << new Number(0.0));
write(String('h' + 'ello') << new Number(-0.0));
write(String('h' + 'ello') << new Number(+0.0));
write(String('h' + 'ello') << new Number(1));
write(String('h' + 'ello') << new Number(10));
write(String('h' + 'ello') << new Number(10.0));
write(String('h' + 'ello') << new Number(10.1));
write(String('h' + 'ello') << new Number(-1));
write(String('h' + 'ello') << new Number(-10));
write(String('h' + 'ello') << new Number(-10.0));
write(String('h' + 'ello') << new Number(-10.1));
write(String('h' + 'ello') << new Number(Number.MAX_VALUE));
write(String('h' + 'ello') << new Number(Number.MIN_VALUE));
write(String('h' + 'ello') << new Number(Number.NaN));
write(String('h' + 'ello') << new Number(Number.POSITIVE_INFINITY));
write(String('h' + 'ello') << new Number(Number.NEGATIVE_INFINITY));
write(String('h' + 'ello') << '');
write(String('h' + 'ello') << 0xa);
write(String('h' + 'ello') << 04);
write(String('h' + 'ello') << 'hello');
write(String('h' + 'ello') << 'hel' + 'lo');
write(String('h' + 'ello') << String(''));
write(String('h' + 'ello') << String('hello'));
write(String('h' + 'ello') << String('h' + 'ello'));
write(String('h' + 'ello') << new String(''));
write(String('h' + 'ello') << new String('hello'));
write(String('h' + 'ello') << new String('he' + 'llo'));
write(String('h' + 'ello') << new Object());
write(String('h' + 'ello') << new Object());
write(String('h' + 'ello') << [1, 2, 3]);
write(String('h' + 'ello') << [1 ,2 , 3]);
write(String('h' + 'ello') << new Array(3));
write(String('h' + 'ello') << Array(3));
write(String('h' + 'ello') << new Array(1 ,2 ,3));
write(String('h' + 'ello') << Array(1));
write(String('h' + 'ello') << foo);
write(new String('') << undefined);
write(new String('') << null);
write(new String('') << true);
write(new String('') << false);
write(new String('') << Boolean(true));
write(new String('') << Boolean(false));
write(new String('') << new Boolean(true));
write(new String('') << new Boolean(false));
write(new String('') << NaN);
write(new String('') << +0);
write(new String('') << -0);
write(new String('') << 0);
write(new String('') << 0.0);
write(new String('') << -0.0);
write(new String('') << +0.0);
write(new String('') << 1);
write(new String('') << 10);
write(new String('') << 10.0);
write(new String('') << 10.1);
write(new String('') << -1);
write(new String('') << -10);
write(new String('') << -10.0);
write(new String('') << -10.1);
write(new String('') << Number.MAX_VALUE);
write(new String('') << Number.MIN_VALUE);
write(new String('') << Number.NaN);
write(new String('') << Number.POSITIVE_INFINITY);
write(new String('') << Number.NEGATIVE_INFINITY);
write(new String('') << new Number(NaN));
write(new String('') << new Number(+0));
write(new String('') << new Number(-0));
write(new String('') << new Number(0));
write(new String('') << new Number(0.0));
write(new String('') << new Number(-0.0));
write(new String('') << new Number(+0.0));
write(new String('') << new Number(1));
write(new String('') << new Number(10));
write(new String('') << new Number(10.0));
write(new String('') << new Number(10.1));
write(new String('') << new Number(-1));
write(new String('') << new Number(-10));
write(new String('') << new Number(-10.0));
write(new String('') << new Number(-10.1));
write(new String('') << new Number(Number.MAX_VALUE));
write(new String('') << new Number(Number.MIN_VALUE));
write(new String('') << new Number(Number.NaN));
write(new String('') << new Number(Number.POSITIVE_INFINITY));
write(new String('') << new Number(Number.NEGATIVE_INFINITY));
write(new String('') << '');
write(new String('') << 0xa);
write(new String('') << 04);
write(new String('') << 'hello');
write(new String('') << 'hel' + 'lo');
write(new String('') << String(''));
write(new String('') << String('hello'));
write(new String('') << String('h' + 'ello'));
write(new String('') << new String(''));
write(new String('') << new String('hello'));
write(new String('') << new String('he' + 'llo'));
write(new String('') << new Object());
write(new String('') << new Object());
write(new String('') << [1, 2, 3]);
write(new String('') << [1 ,2 , 3]);
write(new String('') << new Array(3));
write(new String('') << Array(3));
write(new String('') << new Array(1 ,2 ,3));
write(new String('') << Array(1));
write(new String('') << foo);
write(new String('hello') << undefined);
write(new String('hello') << null);
write(new String('hello') << true);
write(new String('hello') << false);
write(new String('hello') << Boolean(true));
write(new String('hello') << Boolean(false));
write(new String('hello') << new Boolean(true));
write(new String('hello') << new Boolean(false));
write(new String('hello') << NaN);
write(new String('hello') << +0);
write(new String('hello') << -0);
write(new String('hello') << 0);
write(new String('hello') << 0.0);
write(new String('hello') << -0.0);
write(new String('hello') << +0.0);
write(new String('hello') << 1);
write(new String('hello') << 10);
write(new String('hello') << 10.0);
write(new String('hello') << 10.1);
write(new String('hello') << -1);
write(new String('hello') << -10);
write(new String('hello') << -10.0);
write(new String('hello') << -10.1);
write(new String('hello') << Number.MAX_VALUE);
write(new String('hello') << Number.MIN_VALUE);
write(new String('hello') << Number.NaN);
write(new String('hello') << Number.POSITIVE_INFINITY);
write(new String('hello') << Number.NEGATIVE_INFINITY);
write(new String('hello') << new Number(NaN));
write(new String('hello') << new Number(+0));
write(new String('hello') << new Number(-0));
write(new String('hello') << new Number(0));
write(new String('hello') << new Number(0.0));
write(new String('hello') << new Number(-0.0));
write(new String('hello') << new Number(+0.0));
write(new String('hello') << new Number(1));
write(new String('hello') << new Number(10));
write(new String('hello') << new Number(10.0));
write(new String('hello') << new Number(10.1));
write(new String('hello') << new Number(-1));
write(new String('hello') << new Number(-10));
write(new String('hello') << new Number(-10.0));
write(new String('hello') << new Number(-10.1));
write(new String('hello') << new Number(Number.MAX_VALUE));
write(new String('hello') << new Number(Number.MIN_VALUE));
write(new String('hello') << new Number(Number.NaN));
write(new String('hello') << new Number(Number.POSITIVE_INFINITY));
write(new String('hello') << new Number(Number.NEGATIVE_INFINITY));
write(new String('hello') << '');
write(new String('hello') << 0xa);
write(new String('hello') << 04);
write(new String('hello') << 'hello');
write(new String('hello') << 'hel' + 'lo');
write(new String('hello') << String(''));
write(new String('hello') << String('hello'));
write(new String('hello') << String('h' + 'ello'));
write(new String('hello') << new String(''));
write(new String('hello') << new String('hello'));
write(new String('hello') << new String('he' + 'llo'));
write(new String('hello') << new Object());
write(new String('hello') << new Object());
write(new String('hello') << [1, 2, 3]);
write(new String('hello') << [1 ,2 , 3]);
write(new String('hello') << new Array(3));
write(new String('hello') << Array(3));
write(new String('hello') << new Array(1 ,2 ,3));
write(new String('hello') << Array(1));
write(new String('hello') << foo);
write(new String('he' + 'llo') << undefined);
write(new String('he' + 'llo') << null);
write(new String('he' + 'llo') << true);
write(new String('he' + 'llo') << false);
write(new String('he' + 'llo') << Boolean(true));
write(new String('he' + 'llo') << Boolean(false));
write(new String('he' + 'llo') << new Boolean(true));
write(new String('he' + 'llo') << new Boolean(false));
write(new String('he' + 'llo') << NaN);
write(new String('he' + 'llo') << +0);
write(new String('he' + 'llo') << -0);
write(new String('he' + 'llo') << 0);
write(new String('he' + 'llo') << 0.0);
write(new String('he' + 'llo') << -0.0);
write(new String('he' + 'llo') << +0.0);
write(new String('he' + 'llo') << 1);
write(new String('he' + 'llo') << 10);
write(new String('he' + 'llo') << 10.0);
write(new String('he' + 'llo') << 10.1);
write(new String('he' + 'llo') << -1);
write(new String('he' + 'llo') << -10);
write(new String('he' + 'llo') << -10.0);
write(new String('he' + 'llo') << -10.1);
write(new String('he' + 'llo') << Number.MAX_VALUE);
write(new String('he' + 'llo') << Number.MIN_VALUE);
write(new String('he' + 'llo') << Number.NaN);
write(new String('he' + 'llo') << Number.POSITIVE_INFINITY);
write(new String('he' + 'llo') << Number.NEGATIVE_INFINITY);
write(new String('he' + 'llo') << new Number(NaN));
write(new String('he' + 'llo') << new Number(+0));
write(new String('he' + 'llo') << new Number(-0));
write(new String('he' + 'llo') << new Number(0));
write(new String('he' + 'llo') << new Number(0.0));
write(new String('he' + 'llo') << new Number(-0.0));
write(new String('he' + 'llo') << new Number(+0.0));
write(new String('he' + 'llo') << new Number(1));
write(new String('he' + 'llo') << new Number(10));
write(new String('he' + 'llo') << new Number(10.0));
write(new String('he' + 'llo') << new Number(10.1));
write(new String('he' + 'llo') << new Number(-1));
write(new String('he' + 'llo') << new Number(-10));
write(new String('he' + 'llo') << new Number(-10.0));
write(new String('he' + 'llo') << new Number(-10.1));
write(new String('he' + 'llo') << new Number(Number.MAX_VALUE));
write(new String('he' + 'llo') << new Number(Number.MIN_VALUE));
write(new String('he' + 'llo') << new Number(Number.NaN));
write(new String('he' + 'llo') << new Number(Number.POSITIVE_INFINITY));
write(new String('he' + 'llo') << new Number(Number.NEGATIVE_INFINITY));
write(new String('he' + 'llo') << '');
write(new String('he' + 'llo') << 0xa);
write(new String('he' + 'llo') << 04);
write(new String('he' + 'llo') << 'hello');
write(new String('he' + 'llo') << 'hel' + 'lo');
write(new String('he' + 'llo') << String(''));
write(new String('he' + 'llo') << String('hello'));
write(new String('he' + 'llo') << String('h' + 'ello'));
write(new String('he' + 'llo') << new String(''));
write(new String('he' + 'llo') << new String('hello'));
write(new String('he' + 'llo') << new String('he' + 'llo'));
